package com.example.design_pattern.factory.abstracts.facroty;

import com.example.design_pattern.factory.abstracts.ingredient.cheese.Cheese;
import com.example.design_pattern.factory.abstracts.ingredient.cheese.ReggianoCheese;
import com.example.design_pattern.factory.abstracts.ingredient.clams.Clams;
import com.example.design_pattern.factory.abstracts.ingredient.clams.FreshClams;
import com.example.design_pattern.factory.abstracts.ingredient.dough.Dough;
import com.example.design_pattern.factory.abstracts.ingredient.dough.ThinCrustDough;
import com.example.design_pattern.factory.abstracts.ingredient.pepperoni.Pepperoni;
import com.example.design_pattern.factory.abstracts.ingredient.pepperoni.SlicedPepperoni;
import com.example.design_pattern.factory.abstracts.ingredient.sauce.MarinaraSauce;
import com.example.design_pattern.factory.abstracts.ingredient.sauce.Sauce;
import com.example.design_pattern.factory.abstracts.ingredient.veggies.*;

public class NYPizzaIngredientFactory implements PizzaIngredientFactory {

	public Dough createDough() {
		return new ThinCrustDough();
	}

	public Sauce createSauce() {
		return new MarinaraSauce();
	}

	public Cheese createCheese() {
		return new ReggianoCheese();
	}

	public Veggies[] createVeggies() {
		return new Veggies[]{ new Garlic(), new Onion(), new Mushroom(), new RedPepper() };
	}

	public Pepperoni createPepperoni() {
		return new SlicedPepperoni();
	}

	public Clams createClam() {
		return new FreshClams();
	}
}
